package com.itheima.operator;

public class OperatorDemo6 {
    public static void main(String[] args) {
        // 目标：掌握逻辑运算符
        System.out.println(isMatch(1.8, 20, '男'));
        System.out.println(isMatch(1.6, 20, '男'));
        System.out.println("------------------");
        System.out.println(isMatch2(180, 5000));
        System.out.println(isMatch2(160, 3000));
        System.out.println("------------------");
        System.out.println(isMatch3(true));
        System.out.println(isMatch3(false));
        System.out.println("------------------");
        System.out.println(isMatch4(1, 1));
        System.out.println(isMatch4(2, 2));
        System.out.println(isMatch4(1, 2));
        System.out.println("------------------");
        test1();
    }
    // 需求： 判断某个人的条件是否满足择偶要求，如果满足返回true，否则返回false
    // 条件是：身高高于1.70m，年龄在18-25之间，性别为男
    // 与
    public static boolean isMatch(double height, int age, char gender) {
        return height > 1.7 && age >= 18 && age <= 25 && gender == '男';
    }
    // 或
    public static boolean isMatch2(int height, int income) {
        return height > 170 || income > 5000;
    }
    // 非,你真我假，我假你真
    public static boolean isMatch3(boolean isSmoking ) {
        return !isSmoking;
    }
    // 异或，相同返回false，不同返回true
    public static int isMatch4(int a, int b) {
        System.out.println(false ^ true);
        System.out.println(true ^ true);
        System.out.println(false ^ false);
        System.out.println(true ^ false);
        return a ^ b;
    }
    // 逻辑运算符的优先级：
    // 1. 括号
    // 2. 非
    // 3. 与
    // 4. 或
    // 5. 逻辑异或

    // 判断&& || 与 & | 的区别
    public static void test1() {
        int a = 111;
        int b = 2;
        System.out.println(a > 1000 && b++ > 1);
        System.out.println(b);
        System.out.println(a > 1000 & b++ > 1);
        System.out.println(b);
        System.out.println(a > 100 || b++ > 1);
        System.out.println(b);
        System.out.println(a > 100 | b++ > 1);
        System.out.println(b);
    }


}
